/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package persistencia;

import java.sql.*;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Iterator;
import java.util.Vector;
import modelo.Categoria;

/**
 *
 * @author 2006244090165
 */
public class CategoriaDAO {

    //salva dados da pessoa no banco
    public static boolean salvar(Categoria categoria) {
        try {
            Connection con = Conexao.getConexao();
            PreparedStatement stmt =
                    con.prepareStatement("insert into \n" +
                    "CATEGORIA (NOME_CATEGORIA ) values (?)");
            stmt.setString(1, categoria.getNome_categoria());

            stmt.executeUpdate();
            return true;

        } catch (SQLException ex) {
            System.err.println(ex);
            return false;
        } finally {
            System.out.println();
            Conexao.desconecta();
        }
    }

    //salva dados no banco
    public static boolean alterar(Categoria categoria) {
        try {
            Connection con = Conexao.getConexao();
            PreparedStatement stmt =
                    con.prepareStatement("UPDATE CATEGORIA SET " +
                    "NOME_CATEGORIA '" + categoria.getNome_categoria() +
                    "WHERE ID_CATEGORIA= " + categoria.getId_categoria());

            stmt.executeUpdate();
            return true;

        } catch (SQLException ex) {
            System.err.println(ex);
            return false;
        } finally {
            System.out.println();
            Conexao.desconecta();
        }
    }
    //recupera do banco para alterar

    public static Categoria getRecuperaCategoria(int id_categoria) {
        Categoria categoria = null;
        System.out.println("Listar categorias");
        try {
            Connection con = Conexao.getConexao();
            PreparedStatement stmt =
                    con.prepareStatement("select * from CATEGORIA where ID_CATEGORIA=" + id_categoria);
            ResultSet rs = stmt.executeQuery();
            while (rs.next()) {
                categoria = new Categoria();
                categoria.setId_categoria(Integer.parseInt(rs.getString("ID_CATEGORIA")));
                categoria.setNome_categoria(rs.getString("NOME_CATEGORIA"));
            }
            con.close();
        } catch (SQLException ex) {
            System.out.println("Problemas com o BD:");
            ex.printStackTrace();
        }
        return categoria;
    }

    public Vector getCategorias() {
        Vector vp = new Vector();
        try {
            Connection con = Conexao.getConexao();
            Statement stmt =
                    con.createStatement();
            String query = ("select * from CATEGORIA ORDER BY ID_CATEGORIA ASC");
            ResultSet rs = stmt.executeQuery(query);
            while (rs.next()) {
                Categoria categoria = new Categoria();
                categoria.setId_categoria(Integer.parseInt(rs.getString("ID_CATEGORIA")));
                categoria.setNome_categoria(rs.getString("NOME_CATEGORIA"));
                vp.add(categoria);
            }
            Conexao.desconecta();
        } catch (SQLException ex) {
            System.out.println("Problemas com o BD:");
            ex.printStackTrace();
        }
        return vp;
    }

    public void excluir(int id_categoria) {

        try {
            Connection con = Conexao.getConexao();
            Statement stmt = con.createStatement();

            String query = "delete from CATEGORIA where ID_CATEGORIA = " + id_categoria;

            stmt.executeUpdate(query);

        } catch (SQLException ex) {
            System.err.println(ex);

        } finally {
            Conexao.desconecta();

        }

    }

    public static Categoria getCategoria(int id_categoria) {
        Categoria categoria = new Categoria();

        try {
            Connection con = Conexao.getConexao();
            Statement stmt =
                    con.createStatement();
            String query = ("select * from CATEGORIA where ID_CATEGORIA=" + id_categoria);
            ResultSet rs = stmt.executeQuery(query);
            while (rs.next()) {
                categoria.setId_categoria(Integer.parseInt(rs.getString("ID_CATEGORIA")));
                categoria.setNome_categoria(rs.getString("NOME_CATEGORIA"));

            }
            con.close();
        } catch (SQLException ex) {
            System.out.println("Problemas com o BD:");
            ex.printStackTrace();
        }
        return categoria;
    }

    public static void main(String[] args) {
        //testando salvar
        String nome_categoria = "baganas";

        CategoriaDAO a = new CategoriaDAO();
        Vector v = a.getCategorias();
        Iterator it = v.iterator();
        while (it.hasNext()) {
            Categoria categoria = (Categoria) it.next();
            System.out.println(categoria.toString());
        }

    }
}
